################################################################################
## @brief
#			email     stanleyguo0207@163.com
#			github    https://github.com/stanleyguo0207
#			gitee     https://gitee.com/stanleyguo0207
#
################################################################################

################################################################################
## @brief
#			收集该目录下源代码
#
CollectSourceFiles(
  ${CMAKE_CURRENT_SOURCE_DIR}
  PRIVATE_SOURCES
  # Exclude
  ${CMAKE_CURRENT_SOURCE_DIR}/pch)
#
################################################################################

################################################################################
## @brief
#			收集源文件目录
#
CollectIncludeDirectories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  PUBLIC_INCLUDES
  # Exclude
  ${CMAKE_CURRENT_SOURCE_DIR}/pch)
#
################################################################################

################################################################################
## @brief
#			代码树
#
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
#
################################################################################

################################################################################
## @brief
#			可执行文件
add_executable(login
  ${PRIVATE_SOURCES}
  )
#
#
################################################################################

################################################################################
## @brief
#			可执行文件相关配置
#
#     所需头文件
target_include_directories(login
  PUBLIC
    ${PUBLIC_INCLUDES}
  PRIVATE
    ${CMAKE_CURRENT_BINARY_DIR})
#     所需库
target_link_libraries(login
  PRIVATE
    asfinger-core-interface
  PUBLIC
    shared)
#     所需依赖
add_dependencies(common revision_data.h)
#     目标属性
set_target_properties(login
  PROPERTIES
    FOLDER
      "server")
#
################################################################################

################################################################################
## @brief
#			配置文件处理
#
#     windows
if(WIN32)
  if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
    execute_process(
      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/config/login.conf ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/
      )
  elseif(MINGW)
    execute_process(
      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/config/login.conf ${CMAKE_BINARY_DIR}/bin/
      )
  endif()
#     unix
else()
  set_target_properties(login
    PROPERTIES
    COMPILE_DEFINITIONS __AFCORE_LOGIN_CONFIG="${CONF_DIR}/login.conf")
endif()
#
################################################################################

################################################################################
## @brief
#			安装
#
if(UNIX)
  install(TARGETS login DESTINATION bin)
  install(FILES login.conf DESTINATION ${CONF_DIR})
elseif(WIN32)
  install(TARGETS login DESTINATION "${CMAKE_INSTALL_PREFIX}")
  install(FILES login.conf DESTINATION "${CMAKE_INSTALL_PREFIX}")
endif()
#
################################################################################

################################################################################
## @brief
#			pch处理
#
if(USE_COREPCH)
  set(PRIVATE_PCH_HEADER pch/loginpch.h)
  add_cxx_pch(login ${PRIVATE_PCH_HEADER})
endif()
#
################################################################################